//package com.example.resource.config;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Primary;
//import org.springframework.http.HttpStatus;
//import org.springframework.http.client.ClientHttpResponse;
//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
//import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurer;
//import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer;
//import org.springframework.security.oauth2.provider.token.RemoteTokenServices;
//import org.springframework.web.client.DefaultResponseErrorHandler;
//import org.springframework.web.client.RestTemplate;
//
//import java.io.IOException;
//
///**
// * <p>Description: </p>
// * @date
// * @author
// * @version 1.0
// * <p>Copyright:Copyright(c)2020</p>
// */
////@Primary
////@Order(90)
////@Configuration
////@EnableResourceServer
////@EnableGlobalMethodSecurity(prePostEnabled = true)
//public class ResourceSecurityConfigurer implements ResourceServerConfigurer {
//
//    @Autowired
//    private RemoteTokenServices remoteTokenServices;
//
//    @Autowired
//    private RestTemplate restTemplate;
//
//    /**
//     * 远程调用， 采用RestTemplate方式
//     * @param resources
//     * @throws Exception
//     */
//    @Override
//    public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
//        remoteTokenServices.setRestTemplate(restTemplate);
//        resources.tokenServices(remoteTokenServices);
//    }
//
//    /**
//     * 资源服务的安全配置
//     * @param http
//     * @throws Exception
//     */
//    @Override
//    public void configure(HttpSecurity http) throws Exception {
//        http.csrf().disable()
//                .authorizeRequests()
//                .antMatchers("/user/**").authenticated().and()
//                .formLogin().loginPage("/login")
//                .failureUrl("/login?error")
//                .defaultSuccessUrl("/home");
//
//    }
//
//    /**
//     * RestTemplate配置
//     * @return
//     */
//    @Bean
//    @Primary
//    public RestTemplate lbRestTemplate() {
//        RestTemplate restTemplate = new RestTemplate();
//        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
//            @Override
//            public void handleError(ClientHttpResponse response) throws IOException {
//                if (response.getRawStatusCode() != HttpStatus.BAD_REQUEST.value()) {
//                    super.handleError(response);
//                }
//            }
//        });
//        return restTemplate;
//    }
//
//}
